/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package compilador.analisadorSintatico.operacoes;

import compilador.analisadorLexico.Token;
import compilador.analisadorLexico.TokenClass;
import compilador.analisadorSintatico.Producao;
import compilador.analisadorSintatico.TokenReader;
import compilador.analisadorSintatico.simboloGramatical.NaoTerminal;
import compilador.analisadorSintatico.simboloGramatical.SimboloGramatical;
import compilador.analisadorSintatico.simboloGramatical.Terminal;

/**
 *
 * @author Thiago
 */
public class OP_OR extends Producao{

    public SimboloGramatical derivar() throws Exception{
        TokenReader tokenReader =  TokenReader.getInstance();

        Token t = tokenReader.consome();
        //SimboloGramatical simbolo = null;

        if(t.getTokenClass().equals(TokenClass.OPERADOR) && t.getAtributo().equals("||")){
            simbolo = new Terminal(t);
        }else{
            erro("Erro Sintatico ao identificar o Operador '"+t.getAtributo().toString()+"' na linha "+t.getLinha());
            return this.simbolo;
        }
        return simbolo;
    }

    @Override
    public void setSimbolo() {
        super.simbolo = new NaoTerminal("OP_OR");
    }

}
